package org.summerframework.core.annotation;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * 转换文件
 * String -> Long 转换成id
 * String -> String 转换成地址
 * MultipartFile -> Long  转换成id
 * MultipartFile -> String   转换成地址
 *
 * @author 石超
 * @version v1.0.0
 */
@Documented
@Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@ParamName
@Inherited
public @interface MultipartFileFormat {

    /**
     * @return 对应的request中的file paramName, 默认为field本身
     */
    @AliasFor(annotation = ParamName.class, attribute = "name")
    String value() default "";

    /**
     * 默认使用MultipartFile中的文件名, 如果没有是使用改名称
     *
     * @return 文件名称
     */
    String fileName() default "";

    /**
     * @return 压缩后的宽度
     */
    int width() default 500;

    /**
     * @return 压缩后的高度
     */
    int height() default 500;
}
